namespace UniversalAdmin.Application.Dtos.Menu;

/// <summary>
/// 菜单数据传输对象
/// </summary>
public class MenuDto
{
    /// <summary>
    /// 菜单ID
    /// </summary>
    public Guid Id { get; set; }

    /// <summary>
    /// 菜单名称
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 菜单路径
    /// </summary>
    public string? Path { get; set; }

    /// <summary>
    /// 菜单图标
    /// </summary>
    public string? Icon { get; set; }

    /// <summary>
    /// 父级菜单ID
    /// </summary>
    public Guid? ParentId { get; set; }

    /// <summary>
    /// 父级菜单名称
    /// </summary>
    public string? ParentName { get; set; }

    /// <summary>
    /// 排序号 定义同级菜单的显示顺序	数值越小越靠前
    /// </summary>
    public int Sort { get; set; }

    /// <summary>
    /// 菜单编码
    /// </summary>
    public string? Code { get; set; }

    /// <summary>
    /// 是否激活
    /// </summary>
    public bool IsActive { get; set; }

    /// <summary>
    /// 是否删除
    /// </summary>
    public bool IsDeleted { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedAt { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime UpdatedAt { get; set; }

    /// <summary>
    /// 创建者ID
    /// </summary>
    public Guid CreatedBy { get; set; }

    /// <summary>
    /// 更新者ID
    /// </summary>
    public Guid UpdatedBy { get; set; }

    /// <summary>
    /// 子菜单列表
    /// </summary>
    public List<MenuDto> Children { get; set; } = new List<MenuDto>();
}
